home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / bin / gnome-bug < prev    next >
Text File  |  2005-10-20  |  16KB  |  571 lines

  1. #! /bin/sh
  2.  
  3. # This file has been modified for use with the GNOME project.
  4. # Prefixed with '####' is the original license and copyright.
  5.  
  6. #### Submit a problem report to a GNATS site.
  7. #### Copyright (C) 1993 Free Software Foundation, Inc.
  8. #### Contributed by Brendan Kehoe (brendan@cygnus.com), based on a
  9. #### version written by Heinz G. Seidl (hgs@ide.com).
  10. ####
  11. #### This file is part of GNU GNATS.
  12. #### Modified by Berliner for CVS.
  13. ####
  14. #### GNU GNATS is free software; you can redistribute it and/or modify
  15. #### it under the terms of the GNU General Public License as published by
  16. #### the Free Software Foundation; either version 2, or (at your option)
  17. #### any later version.
  18. ####
  19. #### GNU GNATS is distributed in the hope that it will be useful,
  20. #### but WITHOUT ANY WARRANTY; without even the implied warranty of
  21. #### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  22. #### GNU General Public License for more details.
  23.  
  24. # The version of this send-pr.
  25. VERSION=3.2
  26.  
  27. # The submitter-id for your site.
  28. SUBMITTER=net
  29.  
  30. ## # Where the GNATS directory lives, if at all.
  31. ## [ -z "$GNATS_ROOT" ] && 
  32. ## GNATS_ROOT=/usr/local/lib/gnats/gnats-db
  33.  
  34. # The default mail address for PR submissions. 
  35. GNATS_ADDR=submit@bugs.gnome.org
  36.  
  37. # The default release for this host.
  38. DEFAULT_RELEASE="gnome-libs-1.4.2"
  39.  
  40. # The default organization.
  41. DEFAULT_ORGANIZATION="net"
  42.  
  43. ## # The default site to look for.
  44. ## GNATS_SITE=unknown
  45.  
  46. ## # Newer config information?
  47. ## [ -f ${GNATS_ROOT}/gnats-adm/config ] && . ${GNATS_ROOT}/gnats-adm/config
  48.  
  49. # What mailer to use.  This must come after the config file, since it is
  50. # host-dependent.
  51. # FIXME: this should be done in configure.in, with more choices (mail, ...)
  52. if [ -f /usr/sbin/sendmail ]; then
  53.   MAIL_AGENT="/usr/sbin/sendmail -t"
  54. elif [ -f /usr/lib/sendmail ]; then
  55.   MAIL_AGENT="/usr/lib/sendmail -t"
  56. else
  57.   MAIL_AGENT="rmail"
  58. fi
  59. MAILER=`echo $MAIL_AGENT | sed -e 's, .*,,'`
  60. if [ ! -f "$MAILER" ] ; then
  61.     echo "$COMMAND: Cannot file mail program \"$MAILER\"."
  62.     echo "$COMMAND: Please fix the MAIL_AGENT entry in the $COMMAND file."
  63.     doexit 1
  64. fi
  65.  
  66. if test "`echo -n foo`" = foo ; then
  67.   ECHON=bsd
  68. elif test "`echo 'foo\c'`" = foo ; then
  69.   ECHON=sysv
  70. else
  71.   ECHON=none
  72. fi
  73.  
  74. if [ $ECHON = bsd ] ; then
  75.   ECHON1="echo -n"
  76.   ECHON2=
  77. elif [ $ECHON = sysv ] ; then
  78.   ECHON1=echo
  79.   ECHON2='\c'
  80. else
  81.   ECHON1=echo
  82.   ECHON2=
  83. fi
  84.  
  85. #
  86.  
  87. [ -z "$TMPDIR" ] && TMPDIR=$HOME
  88. [ -z "$TMPDIR" ] && TMPDIR=/tmp
  89.  
  90. if mkdir $TMPDIR/.gnome-bug-$$; then
  91.     :
  92. else
  93.     echo "$TMPDIR/.gnome-bug-$$ already exists - what's up?"
  94.     exit 1
  95. fi
  96.  
  97. TMPFILEDIR=$TMPDIR/.gnome-bug-$$
  98. TEMP=$TMPFILEDIR/p
  99. BAD=$TMPFILEDIR/pbad
  100. REF=$TMPFILEDIR/pf
  101.  
  102. doexit() {
  103.     [ -z "$TMPFILEDIR" ] || rm -rf $TMPFILEDIR
  104.     exit $1
  105. }
  106.  
  107. if [ -z "$LOGNAME" -a -n "$USER" ]; then
  108.   LOGNAME=$USER
  109. fi
  110.  
  111. FROM="$LOGNAME"
  112. if [ -z "$REPLY_TO" ]; then
  113.   if [ -z "$REPLYTO" ]; then
  114.     REPLY_TO="$REPLYTO"
  115.   else
  116.     REPLY_TO="$LOGNAME"
  117.   fi
  118. fi
  119.  
  120. # Find out the name of the originator of this PR.
  121. if [ -n "$NAME" ]; then
  122.   ORIGINATOR="$NAME"
  123. elif [ -f $HOME/.fullname ]; then
  124.   ORIGINATOR="`sed -e '1q' $HOME/.fullname`"
  125. elif [ -f /bin/domainname ]; then
  126.   if [ "`/bin/domainname`" != "" -a -f /usr/bin/ypcat ]; then
  127.     # Must use temp file due to incompatibilities in quoting behavior
  128.     # and to protect shell metacharacters in the expansion of $LOGNAME
  129.     /usr/bin/ypcat passwd 2>/dev/null | cat - /etc/passwd | grep "^$LOGNAME:" |
  130.       cut -f5 -d':' | sed -e 's/,.*//' > $TEMP
  131.     ORIGINATOR="`cat $TEMP`"
  132.     rm -f $TEMP
  133.   fi
  134. fi
  135.  
  136. if [ "$ORIGINATOR" = "" ]; then
  137.   grep "^$LOGNAME:" /etc/passwd | cut -f5 -d':' | sed -e 's/,.*//' > $TEMP
  138.   ORIGINATOR="`cat $TEMP`"
  139.   rm -f $TEMP
  140. fi
  141.  
  142. if [ -n "$ORGANIZATION" ]; then
  143.   if [ -f "$ORGANIZATION" ]; then
  144.     ORGANIZATION="`cat $ORGANIZATION`"
  145.   fi
  146. else
  147.   if [ -n "$DEFAULT_ORGANIZATION" ]; then
  148.     ORGANIZATION="$DEFAULT_ORGANIZATION"
  149.   elif [ -f $HOME/.organization ]; then
  150.     ORGANIZATION="`cat $HOME/.organization`"
  151.   elif [ -f $HOME/.signature ]; then
  152.     ORGANIZATION="`cat $HOME/.signature`"
  153.   fi
  154. fi
  155.  
  156. # If they don't have a preferred editor set, then use
  157. if [ -z "$VISUAL" ]; then
  158.   if [ -z "$EDITOR" ]; then
  159.     EDIT=vi
  160.   else
  161.     EDIT="$EDITOR"
  162.   fi
  163. else
  164.   EDIT="$VISUAL"
  165. fi
  166.  
  167. # Find out some information.
  168. SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \
  169.         ( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""`
  170. ARCH=`[ -f /bin/arch ] && /bin/arch`
  171. MACHINE=`[ -f /bin/machine ] && /bin/machine`
  172.  
  173. # FIXME: Add detection code for the other distro.
  174. DISTRO=`( [ -f /etc/debian_version ] && echo "Debian") || \
  175.         ( [ -f /etc/redhat-release ] && echo "Red Hat") || \
  176.     ( [ -f /etc/SuSE-release ] && echo "SuSE") || \
  177.         ( [ -f /etc/slackware-version ] && echo "Slackware") || \
  178.     echo ""`
  179. DISTROVERSION=`( [ -f /etc/debian_version ] && cat /etc/debian_version) || \
  180.         ( [ -f /etc/redhat-release ] && cat /etc/redhat-release) || \
  181.         ( [ -f /etc/SuSE-release ] && head -1 /etc/SuSE-release) || \
  182.         ( [ -f /etc/slackware-version ] && cat /etc/slackware-version) || \
  183.     echo ""`
  184.  
  185. COMMAND=`echo $0 | sed -e 's,.*/,,'`
  186. ## USAGE="Usage: $COMMAND [-PVL] [-t address] [-f filename] [--request-id] 
  187. USAGE="Usage: $COMMAND [-PVL]
  188. [--version]"
  189. REMOVE=
  190. BATCH=
  191.  
  192. while [ $# -gt 0 ]; do
  193.   case "$1" in
  194.     -r) ;;         # Ignore for backward compat.
  195. ##     -t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
  196. ##     shift ; GNATS_ADDR="$1"
  197. ##     EXPLICIT_GNATS_ADDR=true
  198. ##         ;;
  199. ##     -f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
  200. ##     shift ; IN_FILE="$1"
  201. ##     if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then
  202. ##       echo "$COMMAND: cannot read $IN_FILE"
  203. ##       exit 1
  204. ##     fi
  205. ##     ;;
  206.     -b | --batch) BATCH=true ;;
  207.     -p | -P | --print) PRINT=true ;;
  208.     -L | --list) FORMAT=norm ;;
  209.     -l | -CL | --lisp) FORMAT=lisp ;;
  210. ##     --request-id) REQUEST_ID=true ;;
  211.     -h | --help) echo "$USAGE"; doexit 0 ;;
  212.     -V | --version) echo "$VERSION"; doexit 0 ;;
  213.     -*) echo "$USAGE" ; doexit 1 ;;
  214.     *) echo "$USAGE" ; doexit 1
  215. ##        if [ -z "$USER_GNATS_SITE" ]; then
  216. ##      if [ ! -r "$DATADIR/gnats/$1" ]; then
  217. ##        echo "$COMMAND: the GNATS site $1 does not have a categories list."
  218. ##        exit 1
  219. ##      else
  220. ##        # The site name is the alias they'll have to have created.
  221. ##        USER_GNATS_SITE=$1
  222. ##      fi
  223. ##        else
  224. ##      echo "$USAGE" ; exit 1
  225. ##        fi
  226.        ;;
  227.  esac
  228.  shift
  229. done
  230.  
  231. if [ -n "$USER_GNATS_SITE" ]; then
  232.   GNATS_SITE=$USER_GNATS_SITE
  233.   GNATS_ADDR=$USER_GNATS_SITE-gnats
  234. fi
  235.  
  236.  
  237. ## if [ -r "$DATADIR/gnats/$GNATS_SITE" ]; then
  238. ##   CATEGORIES=`grep -v '^#' $DATADIR/gnats/$GNATS_SITE | sort`
  239. ## else
  240. ##   echo "$COMMAND: could not read $DATADIR/gnats/$GNATS_SITE for categories list."
  241. ##   exit 1
  242. ## fi
  243.  
  244. CATEGORIES="audiofile balsa bonobo bugs.gnome.org control-center crescendo desktop-docs \
  245. ee enlightenment esound evolution ezpaint form-maker gdk-pixbuf gdm gdm2 gedit general \
  246. genius ggv gimp glade glademm glib gmenu gnome-admin gnome-applets gnome-apt \
  247. gnome-chess gnome-core gnome-db gnome-dom gnome-games gnome-guile gnome-idl gnome-libs \
  248. gnome-linuxconf gnome-mailer gnome-media gnome-network gnome-objc gnome-perl \
  249. gnome-pilot gnome-pim gnome-print gnome-python gnome-terminal gnome-utils gnome-xml \
  250. gnomeicu gnometris gnorpm gnumeric go goose goose2 gphoto granite gtcd gtk+ gtk--addons \
  251. gtk-themes gtkicq gtop guile-gtk guile-server guppi guppi2 gwp gxsnmp imlib libglade \
  252. libgtop libgtop-bindings libgtop-docu libidl mc nethack orbit panel www.gnome.org xchat \
  253. xmhtml gnome-ppp gnomecal popt g-print gbatnav gftp gicq gkb"
  254.  
  255. if [ -z "$CATEGORIES" ]; then
  256.   echo "$COMMAND: the categories list for $GNATS_SITE was empty!"
  257.   doexit 1
  258. fi
  259.  
  260. case "$FORMAT" in
  261.   lisp) echo "$CATEGORIES" | \
  262.         awk 'BEGIN {printf "( "}
  263.          {printf "(\"%s\") ",$0}
  264.          END {printf ")\n"}'
  265.         doexit 0
  266.         ;;
  267.   norm) l=`echo "$CATEGORIES" | \
  268.     awk 'BEGIN {max = 0; }
  269.          { if (length($0) > max) { max = length($0); } }
  270.          END {print max + 1;}'`
  271.     c=`expr 70 / $l`
  272.     if [ $c -eq 0 ]; then c=1; fi
  273.     echo "$CATEGORIES" | \
  274.         awk 'BEGIN {print "Known categories:"; i = 0 }
  275.           { printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } }
  276.             END { print ""; }'
  277.         doexit 0
  278.         ;;
  279. esac
  280.  
  281. ORIGINATOR_C='<name of the PR author (one line)>'
  282. ORGANIZATION_C='<organization of PR author (multiple lines)>'
  283. CONFIDENTIAL_C='<[ yes | no ] (one line)>'
  284. SYNOPSIS_C='<synopsis of the problem (one line)>'
  285. SEVERITY_C='<[ normal | wishlist | grave | critical ] (one word)>'
  286. PRIORITY_C='<[ low | medium | high ] (one line)>'
  287. CATEGORY_C='<name of the package, usually from list above (one line)>'
  288. CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one line)>'
  289. RELEASE_C='<release number or tag (one line)>'
  290. ENVIRONMENT_C='<machine, os, libc version, target, libraries (multiple lines)>'
  291. DESCRIPTION_C='<precise description of the problem (multiple lines)>'
  292. HOW_TO_REPEAT_C='<code/input/activities to reproduce the problem (multiple lines)>'
  293. FIX_C='<how to correct or work around the problem, if known (multiple lines)>'
  294.  
  295. # Catch some signals. ($xs kludge needed by Sun /bin/sh)
  296. xs=0
  297. trap 'rm -f $REF $TEMP; doexit $xs' 0
  298. trap 'echo "$COMMAND: Aborting ..."; rm -f $REF $TEMP; xs=1; doexit' 1 2 3 13 15
  299.  
  300. # If they told us to use a specific file, then do so.
  301. if [ -n "$IN_FILE" ]; then
  302.   if [ "$IN_FILE" = "-" ]; then
  303.     # The PR is coming from the standard input.
  304.     if [ -n "$EXPLICIT_GNATS_ADDR" ]; then
  305.       sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" > $TEMP
  306.     else
  307.       cat > $TEMP
  308.     fi
  309.   else
  310.     # Use the file they named.
  311.     if [ -n "$EXPLICIT_GNATS_ADDR" ]; then
  312.       sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" $IN_FILE > $TEMP
  313.     else
  314.       cat $IN_FILE > $TEMP
  315.     fi
  316.   fi
  317. else
  318.  
  319.   if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then
  320.     # If their PR_FORM points to a bogus entry, then bail.
  321.     if [ ! -f "$PR_FORM" -o ! -r "$PR_FORM" -o ! -s "$PR_FORM" ]; then
  322.       echo "$COMMAND: can't seem to read your template file (\`$PR_FORM'), ignoring PR_FORM"
  323.       sleep 1
  324.       PRINT_INTERN=bad_prform
  325.     fi
  326.   fi
  327.  
  328.   if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then
  329.     cp $PR_FORM $TEMP || 
  330.       ( echo "$COMMAND: could not copy $PR_FORM" ; xs=1; exit )
  331.   else
  332.     for file in $TEMP $REF ; do
  333.       cat  > $file << '__EOF__'
  334. SEND-PR: -*- GNOME bug tracking system -*-
  335. SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as
  336. SEND-PR: will all comments (text enclosed in `<' and `>').
  337. SEND-PR: 
  338. SEND-PR: The severity levels are: 
  339. SEND-PR: normal - the default value, for normal tickets. 
  340. SEND-PR: wishlist 
  341. SEND-PR:     for any feature request, and also for any tickets that are very
  342. SEND-PR:     difficult to fix due to major problems. 
  343. SEND-PR: grave 
  344. SEND-PR:     makes the software in question unuseable or mostly so, or causes
  345. SEND-PR:     data loss, or introduces a security hole allowing access to the
  346. SEND-PR:     accounts of users who use the software. 
  347. SEND-PR: critical 
  348. SEND-PR:     makes unrelated software on the system (or the whole system)
  349. SEND-PR:     break, or causes serious data loss, or introduces a security hole
  350. SEND-PR: 
  351. SEND-PR: 
  352. SEND-PR: Choose from the following packages:
  353. SEND-PR:
  354. __EOF__
  355.  
  356.       # Format the categories so they fit onto lines.
  357.     l=`echo "$CATEGORIES" | \
  358.     awk 'BEGIN {max = 0; }
  359.          { if (length($0) > max) { max = length($0); } }
  360.          END {print max + 1;}'`
  361.     c=`expr 61 / $l`
  362.     if [ $c -eq 0 ]; then c=1; fi
  363.     echo "$CATEGORIES" | \
  364.         awk 'BEGIN {printf "SEND-PR: "; i = 0 }
  365.           { printf ("%-'$l'.'$l's", $0);
  366.         if ((++i % '$c') == 0) { printf "\nSEND-PR: " } }
  367.             END { printf "\nSEND-PR:\n"; }' >> $file
  368.  
  369.       cat >> $file << __EOF__
  370. To: $GNATS_ADDR
  371. Subject: <summarize bug in one line here>
  372. From: $FROM
  373.  
  374. Package:    $CATEGORY_C
  375. Version:    <only if known (one line)>
  376. Severity:    $SEVERITY_C
  377.  
  378. >Originator:      $ORIGINATOR
  379. >Organization:
  380. ${ORGANIZATION-$ORGANIZATION_C}
  381. >Synopsis:    $SYNOPSIS_C
  382. >Class:        $CLASS_C
  383. >Gnome-Libs-Release: ${DEFAULT_RELEASE-$RELEASE_C}
  384. >Environment:
  385.         $ENVIRONMENT_C
  386. `[ -n "$SYSTEM" ] && echo System: $SYSTEM`
  387. `[ -n "$ARCH" ] && echo Architecture: $ARCH`
  388. `[ -n "$MACHINE" ] && echo Machine: $MACHINE`
  389. `[ -n "$DISTRO" ] && echo Distribution: $DISTRO` `[ -n "$DISTROVERSION" ] && echo Version: $DISTROVERSION`
  390.  
  391. >Description:
  392.     $DESCRIPTION_C
  393.  
  394. >How-To-Repeat:
  395.     $HOW_TO_REPEAT_C
  396.  
  397. >Fix:
  398.     $FIX_C
  399. __EOF__
  400.     done
  401.   fi
  402.  
  403.   if [ "$PRINT" = true -o "$PRINT_INTERN" = true ]; then
  404.     cat $TEMP
  405.     xs=0; doexit
  406.   fi
  407.  
  408.   chmod u+w $TEMP
  409.   if [ -z "$REQUEST_ID" ]; then
  410.     eval $EDIT $TEMP
  411.   else
  412.     ed -s $TEMP << '__EOF__'
  413. /^Subject/s/^Subject:.*/Subject: request for a customer id/
  414. /^>Category/s/^>Category:.*/>Category: send-pr/
  415. w
  416. q
  417. __EOF__
  418.   fi
  419.  
  420.   if cmp -s $REF $TEMP ; then
  421.     echo "$COMMAND: problem report not filled out, therefore not sent"
  422.     xs=1; doexit
  423.   fi
  424. fi
  425.  
  426. #
  427. #    Check the enumeration fields
  428.  
  429. # This is a "sed-subroutine" with one keyword parameter 
  430. # (with workaround for Sun sed bug)
  431. #
  432. SED_CMD='
  433. /$PATTERN/{
  434. s|||
  435. s|<.*>||
  436. s|^[     ]*||
  437. s|[     ]*$||
  438. p
  439. q
  440. }'
  441.  
  442.  
  443. while [ -z "$REQUEST_ID" ]; do
  444.   CNT=0
  445.  
  446.   # 1) Confidential
  447.   #
  448.   PATTERN=">Confidential:"
  449.   CONFIDENTIAL=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
  450.   case "$CONFIDENTIAL" in
  451.     ""|yes|no) CNT=`expr $CNT + 1` ;;
  452.     *) echo "$COMMAND: \`$CONFIDENTIAL' is not a valid value for \`Confidential'." ;;
  453.   esac
  454.   #
  455.   # 2) Severity
  456.   #
  457.   PATTERN=">Severity:"
  458.   SEVERITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
  459.   case "$SEVERITY" in
  460.     ""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;;
  461.     *)  echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'."
  462.   esac
  463.   #
  464.   # 3) Priority
  465.   #
  466.   PATTERN=">Priority:"
  467.   PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
  468.   case "$PRIORITY" in
  469.     ""|low|medium|high) CNT=`expr $CNT + 1` ;;
  470.     *)  echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'."
  471.   esac
  472.   #
  473.   # 4) Category
  474.   #
  475.   PATTERN="Package:"
  476.   CATEGORY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
  477.   FOUND=
  478.   for C in $CATEGORIES
  479.   do
  480.     if [ "$C" = "$CATEGORY" ]; then FOUND=true ; break ; fi
  481.   done
  482.   if [ -n "$FOUND" ]; then
  483.     CNT=`expr $CNT + 1`    
  484.   else
  485.     if [ -z "$CATEGORY" ]; then
  486.       echo "$COMMAND: WARNING: blank package name"
  487.     else
  488.       echo "$COMMAND: WARNING: \`$CATEGORY' is not a known category."
  489.     fi
  490.   fi
  491.   #
  492.   # 5) Class
  493.   #
  494.   PATTERN=">Class:"
  495.   CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
  496.   case "$CLASS" in
  497.     ""|sw-bug|doc-bug|change-request|support) CNT=`expr $CNT + 1` ;;
  498.     *)  echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'."
  499.   esac
  500.  
  501.   [ $CNT -lt 5 -a -z "$BATCH" ] && 
  502.     echo "Errors were found with the problem report."
  503.  
  504.   while true; do
  505.     if [ -z "$BATCH" ]; then
  506.       $ECHON1 "a)bort, e)dit or s)end? $ECHON2"
  507.       read input
  508.     else
  509.       if [ $CNT -eq 5 ]; then
  510.         input=s
  511.       else
  512.         input=a
  513.       fi
  514.     fi
  515.     case "$input" in
  516.       a*)
  517.     if [ -z "$BATCH" ]; then
  518.       echo "$COMMAND: the problem report remains in $BAD and is not sent."
  519.       mv $TEMP $BAD
  520.         else
  521.       echo "$COMMAND: the problem report is not sent."
  522.     fi
  523.     xs=1; doexit
  524.     ;;
  525.       e*)
  526.         eval $EDIT $TEMP
  527.     continue 2
  528.     ;;
  529.       s*)
  530.     break 2
  531.     ;;
  532.     esac
  533.   done
  534. done
  535. #
  536. #    Remove comments and send the problem report
  537. #    (we have to use patterns, where the comment contains regex chars)
  538. #
  539. # /^>Originator:/s;$ORIGINATOR;;
  540. sed  -e "
  541. /^SEND-PR:/d
  542. /^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;;
  543. /^>Confidential:/s;<.*>;;
  544. /^>Synopsis:/s;$SYNOPSIS_C;;
  545. /^Severity:/s;<.*>;;
  546. /^Version:/s;<.*>;;
  547. /^X-Gnome-CC:/s;<[ A-Za-z0-9]+>;;
  548. /^>Priority:/s;<.*>;;
  549. /^Package:/s;$CATEGORY_C;;
  550. /^>Class:/s;<.*>;;
  551. /^>Gnome-Libs-Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;;
  552. /^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;;
  553. /^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;;
  554. /^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;;
  555. /^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;;
  556. " $TEMP > $REF
  557.  
  558. if $MAIL_AGENT < $REF; then
  559.   echo "$COMMAND: problem report sent"
  560.   xs=0; doexit
  561. else
  562.   echo "$COMMAND: mysterious mail failure."
  563.   if [ -z "$BATCH" ]; then
  564.     echo "$COMMAND: the problem report remains in $BAD and is not sent."
  565.     mv $REF $BAD
  566.   else
  567.     echo "$COMMAND: the problem report is not sent."
  568.   fi
  569.   xs=1; doexit
  570. fi
  571.